<?php namespace Common\Model;

	use Hdphp\Model\Model;
//	订单模型
	class Order extends Model{
		protected $table='shop_order';
		
		public function store(){
//			echo 'ok';die;
//			p($_POST);die;
//			订单号
			$orderNumber=Cart::getOrderId();
//			收货人姓名
			$consignee=Q('post.consignee');
//			收货地址
			$address=Q('post.address');
//			转换为字符串
			$address=implode(',', $address);
//			手机号
			$phone=Q('post.phone');
		     $postcode=Q('post.postcode');
			
//			备注
			$remark=Q('post.remark');
//			$total=

//			p($cartData);die;
			
//			写入数据库
//          写入地址表
			$data=array(
				'consignee'=>$consignee,
				'address'=>$address,
				'phone'=>$phone,
				'postcode'=>$postcode,
				'remark'=>$remark,
				'uid'=>$_SESSION['uid'],
			);
			$addressModel=new \Common\Model\Address;
			$uaid=$addressModel->add($data);
			
//          p($uaid);die;
//		       写入订单表，
//			获取当前购物车已经选中的商品键名
			$glid=$_SESSION['cartglid'];
//			将键名数据传入方法中获取对应的商品数据
			$cartData=$this->getCartGoods($glid);
			$total_all=$cartData['total_all']; 
//			p($cartData);die;
			$data=array(
				'number'=>$orderNumber,
				'subtotal'=>$cartData['total_all'],
				'time'=>time(),
				'uaid'=>$uaid,
				'status'=>'未付款',
				'uid'=>$_SESSION['uid'],
			);
//			p($data);die;
//			写入订单表中
//			返回写入订单的主键id
			$oid=$this->add($data);			
//		       写入订单列表
			$orderListModel=new \Common\Model\OrderList;
			foreach($cartData['goods'] as $k=>$v){
//				组合属性id
				$combile=$v['options']['combile'];
//				获取组合属性的主键id
				$glid=Db::table('shop_goods_list')->where('combine',$combile)->where('gid',$v['id'])->pluck('glid');
				
				$number=Db::table('shop_goods_list')->where('combine',$combile)->where('gid',$v['id'])->pluck('number');
				
				
				$data=array(
				
					'gname'=>$v['name'],
//				      数量
					'quantity'=>$v['num'],
					'total'=>$v['total'],
					
//					小计总金额
//					'subtotal'=>$total_all,
//					备注说明
					'explain'=>$remark,
//					商品id
					'gid'=>$v['id'],
//					订单id
					'oid'=>$oid,
//					货品列表主键
					'glid'=>$glid,
//					单价
					'price'=>$v['price'],
					
//					货品颜色
					'color'=>$v['options']['color'],
//				         货品尺码
					'size'=>$v['options']['size'],
//					货品图片
					'pic'=>$v['options']['listImg'],
//					货品货号
					'glnumber'=>$number,
				);
//				p($data);die;
				$orderListModel->add($data);
			}
			
			return $orderNumber;
		}
		
		private function getCartGoods($glid){
//		注意这里只需要获取选中的商品的数据信息
		$data=Cart::getGoods(); 
//		p($glid);
//		p($data);die;
		
		$comData=array();
		$totalData=array();
		foreach($data as $k=>$v){
//			当，当前商品的键名存在于所有选择中的商品id中
			if(in_array($k,$glid)){
				$comData['goods'][]=$v;
//				压入小计价格
				$totalData[]=$v['total'];
				
			}
		}
//		p($totalData);
//		求和array_sum
//		压入商品数组中
		$comData['total_all']=array_sum($totalData);
//		p($comData);die;
		return $comData;
	}
		
		
		
	}
	
	
	
	?>